package chapter05

object Test11_ControlAbstraction {
  def main(args: Array[String]): Unit = {
    //1 传值参数
    def f0(a: Int): Unit = {
      println("a:  " + a)
      println("a:  " + a)
    }

    def f1(): Int = {
      println("f1调用")
      12
    }

    f0(f1())
    println("============================================================================")

    //2 传名参数 传递的不是具体的值而是一个代码块
    def f2(/*要求传入一段代码块，代码块的返回值是Int*/ a: => Int): Unit = {
      println("a:  " + a)
      println("a:  " + a)
    }

    f2(23)
    //传入的f1() 要看a调用多少次，a调用多少次这个代码块就会执行多少次
    f2(f1())
    println("=======================================================")
    f2({
      println("这是一段代码块")
      65
    })
  }
}
